1. Field of the Invention
The present invention relates to data processing, and is more particularly related to notification services.
2. Discussion of the Background
Rules based processing systems date back to the introduction of LISP (List Processing) to computer technology. LISP was primarily used in the AI (Artificial Intelligence) community to manipulate lists of data. Since that time the rules processing development tools were mostly targeted for simulations and AI type systems. It has only been recently that rules based systems have found newer markets because of easier code maintenance and high data processing performance.
With the advent and subsequent pervasiveness of the Internet, newer web-based technologies have become more dominant in their use and construction. The flexibility of these architectures has been to separate the clients and servers into tiers or levels of abstraction. Also, with the introduction of expert systems, business rule technologies have become more widely used.
Software business rules are the policies and procedures of a business captured in executable format. Business logic is the logic involved in implementing the policies and procedures of the business. In this context, business logic includes the assertions, assumptions and operations that define the policies and procedures of the business. Any software code that is not concerned with manipulation of the computing environment (e.g., retrieving data from storage, memory allocation, service invocations, etc.) is potentially a business rule. Business rules range in scope from simple validations to complex, multi-step procedures. Rules are always aligned with some aspect of business processes (e.g., invoicing, sales, manufacturing), commonly called domains. At the same time, rules are often invoked across business boundaries, for example, a sales application may invoke employee (e.g., human resource) rules to calculate a commission.
The separation of business logic from the internal source code has been a design pattern that has been promoted because of the flexibility it affords with respect to code reuse and modularity. A contemporary enterprise is defined by and encapsulated in its information systems. In effect, company policy manuals are now implemented in business software. The impetus for publishing policies and procedures of a business has been to enforce a consistent implementation across the enterprise. Computerization has not changed this requirement. However, implementation of such a system has been costly.
A rule, in general, is a statement that can be used to verify premises and enable a conclusion to be drawn. A rule-based system is an approach to problem solving based on an xe2x80x9cIF this, THEN thatxe2x80x9d approach that uses a set of rules, a database (DB) of information, and a xe2x80x9crule interpreterxe2x80x9d to match premises with facts and form a conclusion.
There are several considerations associated with implementing business rules for an enterprise. For example, the human reasoning behind a rule, or the xe2x80x9cessencexe2x80x9d of the rule, is often changed in transitioning from human-oriented user requirements to actual software code. In addition, the same logical rules may be implemented in several different software applications in an inconsistent manner. When rules are implemented as software code, the identification of specific business rules within a software application, or across several software applications, is often difficult or impossible. Also, modifying business rules embedded in traditional software applications in response to changing business conditions is difficult, time-consuming, costly and risky. Various designs and architecture schemes have evolved to address the need to abstract business-level actions from internal code workings of the software components. Object programming languages, client/server and n-Tier architectures, as an example, have become more prevalent as the software industry has evolved.
The use of notifications is an integral part of business operation; consequently, the business system must support the proper and timely issuance of notifications. For example, in a network operation center, it is imperative that appropriate personnel are notified when a critical network alarm occurs as a result of a cable cut or an equipment failure. The term notification is defined as a message that provides instructions, approval request or other business related information. This can either be in form of e-mail, page, or fax. At a high-level, the process of sending a notification is rather simplistic.
Traditional data processing systems have used the concept of computer generated notifications that are based on an object state or information state. Notifications in most legacy systems are generated either by calling specific methods or procedures that contain code associated directly with the desired notification. For example, if a notification that acknowledge that a user""s request to purchase an item through an online shopping system (e.g., Sale Invoice) were required, traditional applications would call a specific method like generateNotification(ticket number, user Info, notification Type) or generateInvoiceNotification(ticket number, user Info) on a server or ticket object. The implementation details, such as the type of notification and contents of the notification, are tied directly to the method or procedure. When a new notification is needed, for example, a Thank You notification, the code in generateNotification( ) would have to be changed or a new method generateThankYouNotification( ) would have to be created.
A drawback with the traditional approach is that the implementation of the domain space is tied directly to the information contained within the object or the information passed through a procedure or method call. As the business conditions change, the implementation of the computer code must be modified to provide new responses and actions by the systems. Also, as the information changes or if new objects are added into the domain space, again the implementation of source code within a computer system must change. Hence, traditional systems lack modularity with respect to notification services.
Based on the foregoing, there is a clear need for improved approaches for implementing business rules to effect notifications.
There is also a need to increase architectural and design flexibility to adapt to changing business policies and conditions.
There is a further need to increase development modularity.
There is also a need to reduce development cost.
Based on the need to streamline the implementation of business rules, an approach for generating notifications that are independent of the system processes is highly desirable.
According to one aspect of the invention, a computer implemented method is provided for providing notifications in a distributed object-oriented environment. The method includes mapping one of the notifications to a notification trigger point. The notification trigger point is based upon a business rule that corresponds to an object life cycle state of an object. The method also includes receiving a notification subscription request from a user to subscribe to one of the notification trigger points, in which the user has a user profile that indicates the role of the user. The method further encompasses permitting the user to subscribe to the one notification trigger point based upon the role of the user. In addition, the method includes filtering the notification based upon subscription filter criteria and selectively sending one of the notifications to the subscribed user based upon the filtering step. Under this approach, design flexibility is enhanced, permitting adaptation to business policies and conditions without code change.
According to another aspect of the invention, a computer implemented system for providing notifications in a distributed object-oriented environment comprises a server that is configured to transmit a notification subscription request initiated by a user. A business rule manager module maps a business rule to a notification trigger point; the business rule corresponds to a business process at an object life cycle state of an object. A user manager module receives a notification subscription request from the user to subscribe to one of the notification trigger points. The user has a user profile that indicates the role of the user. The user is permitted to subscribe to the one notification trigger point based upon the role. A notification manager module is configured to filter the notifications based upon subscription filter criteria and to send selectively one of the notifications. The above arrangement advantageously provides development modularity.
In yet another aspect of the invention, a computer-readable medium carrying one or more sequences of one or more instructions for providing notifications in a distributed object-oriented environment. The one or more sequences of one or more instructions include instructions which, when executed by one or more processors, cause the one or more processors to perform the step of mapping one of the notifications to a notification trigger point, wherein the notification trigger point is based upon a business rule that corresponds to an object life cycle state of an object. Another step includes receiving a notification subscription request from a user to subscribe to one of the notification trigger points; the user has a user profile that indicates the role of the user. Another step includes permitting the user to subscribe to the one notification trigger point based upon the role of the user. In addition, a step includes filtering the notification based upon subscription filter criteria. Yet another step includes selectively sending one of the notifications to the subscribed user based upon the filtering step. This approach advantageously reduces system development cost.